home *** CD-ROM | disk | FTP | other *** search
- on WIN_initVR
- global gPathName, gLastTimeRollover, gPanoFrame, gPanoCallBackFactory, gTestCallbackFactory
- set gPathName to EMPTY
- set gLastTimeRollover to 0
- set gPanoFrame to EMPTY
- openXLib("QTVRW.QTC")
- set tInitObj to qtvrw(mnew, "Nav")
- if objectp(tInitObj) then
- tInitObj(mdispose)
- end if
- set gPanoCallBackFactory to thCallbacks(mnew)
- end
-
- on WIN_cleanUpVR
- global gPanoCallBackFactory, gTestCallbackFactory
- ClosePanoMovie()
- CloseNavMovie()
- closeXLib("QTVRW.QTC")
- if objectp(gPanoCallBackFactory) then
- gPanoCallBackFactory(mdispose)
- end if
- end
-
- on WIN_OpenNavMovie pFilename, pSpriteNum, pShowOnOpen
- global gNavMovieObj
- CloseNavMovie()
- set gNavMovieObj to qtvrw(mnew, "Nav")
- if not objectp(gNavMovieObj) then
- put "Unable to create new Nav instance"
- beep()
- exit
- end if
- set tResultCode to gNavMovieObj(mOpenMovie, pFilename, the left of sprite pSpriteNum & "," & the top of sprite pSpriteNum)
- if tResultCode = 0 then
- put "Unable to open navmovie"
- gNavMovieObj(mdispose)
- beep()
- exit
- end if
- if pShowOnOpen then
- gNavMovieObj(mUpdate)
- end if
- end
-
- on WIN_ShowNavMovie
- global gNavMovieObj
- if objectp(gNavMovieObj) then
- gNavMovieObj(mUpdate)
- end if
- end
-
- on WIN_SetNavMovieView pHPan, pVPan
- global gNavMovieObj
- if objectp(gNavMovieObj) then
- gNavMovieObj(mSetHPanAngle, string(pHPan))
- gNavMovieObj(mSetVPanAngle, string(pVPan))
- end if
- end
-
- on WIN_CloseNavMovie
- global gNavMovieObj
- if objectp(gNavMovieObj) then
- gNavMovieObj(mdispose)
- end if
- end
-
- on WIN_NavFrameScript pSpriteNum
- global gNavMovieObj
- if objectp(gNavMovieObj) then
- if rollOver(pSpriteNum) then
- gNavMovieObj(mMouseOver)
- cursor(200)
- cursor(-1)
- else
- gNavMovieObj(mIdle)
- end if
- end if
- end
-
- on WIN_OpenPanoMovie pFilename, pSpriteNum, pShowOnOpen
- global gPanoMovieObj, gPathName
- ClosePanoMovie()
- set gPanoMovieObj to qtvrw(mnew, "Pan")
- if not objectp(gPanoMovieObj) then
- put "Unable to create new Pan instance"
- beep()
- exit
- end if
- set tResultCode to gPanoMovieObj(mOpenMovie, pFilename, the left of sprite pSpriteNum & "," & the top of sprite pSpriteNum)
- if tResultCode = 0 then
- put "Unable to open panomovie"
- gPanoMovieObj(mdispose)
- beep()
- exit
- end if
- set gPathName to ExtractPathName(pFilename)
- InitPanoCallbacks()
- if pShowOnOpen then
- gPanoMovieObj(mUpdate)
- end if
- end
-
- on WIN_InitPanoCallbacks
- global gPanoMovieObj, gPanoCallBackFactory
- if objectp(gPanoMovieObj) and objectp(gPanoCallBackFactory) then
- gPanoMovieObj(mSetMouseOverCallback, gPanoCallBackFactory, EMPTY)
- gPanoMovieObj(mSetRolloverCallback, gPanoCallBackFactory, "thRolloverHandler")
- gPanoMovieObj(mSetMouseDownCallback, gPanoCallBackFactory, EMPTY)
- gPanoMovieObj(mSetPanZoomStartCallback, gPanoCallBackFactory, EMPTY)
- gPanoMovieObj(mSetMouseStillDownCallback, gPanoCallBackFactory, EMPTY)
- gPanoMovieObj(mSetNodeLeaveCallback, gPanoCallBackFactory, EMPTY)
- end if
- end
-
- on WIN_ShowPanoMovie pQuality
- global gPanoMovieObj
- if objectp(gPanoMovieObj) then
- if not voidp(pQuality) then
- gPanoMovieObj(mSetQuality, string(pQuality))
- end if
- gPanoMovieObj(mUpdate)
- end if
- end
-
- on WIN_SetPanoNode pNodeID, pUpdate, pQuality
- global gPanoMovieObj
- if objectp(gPanoMovieObj) then
- if not voidp(pNodeID) then
- gPanoMovieObj(mSetNodeID, integer(pNodeID))
- end if
- if not voidp(pQuality) then
- gPanoMovieObj(mSetQuality, string(pQuality))
- end if
- if pUpdate then
- gPanoMovieObj(mUpdate)
- end if
- end if
- end
-
- on WIN_SwingPanoMovie pHPan, pVPan, pZoom, pSwingSpeed, pSwingQuality, pFinalQuality
- global gPanoMovieObj
- if objectp(gPanoMovieObj) then
- gPanoMovieObj(mSetZoomAngle, string(pZoom))
- gPanoMovieObj(mSetVPanAngle, string(pVPan))
- gPanoMovieObj(mSetHPanAngle, string(pHPan))
- gPanoMovieObj(mSetQuality, string(pSwingQuality))
- gPanoMovieObj(mSetTransitionMode, "swing")
- gPanoMovieObj(mSetTransitionSpeed, string(pSwingSpeed))
- gPanoMovieObj(mUpdate)
- gPanoMovieObj(mSetTransitionMode, "normal")
- if pFinalQuality <> pSwingQuality then
- gPanoMovieObj(mSetQuality, string(pSwingQuality))
- gPanoMovieObj(mUpdate)
- end if
- end if
- end
-
- on WIN_SetPanoMovieView pHPan, pVPan, pZoom, pQuality
- global gPanoMovieObj
- if objectp(gPanoMovieObj) then
- gPanoMovieObj(mSetZoomAngle, string(pZoom))
- gPanoMovieObj(mSetVPanAngle, string(pVPan))
- gPanoMovieObj(mSetHPanAngle, string(pHPan))
- if not voidp(pQuality) then
- gPanoMovieObj(mSetQuality, string(pQuality))
- end if
- gPanoMovieObj(mUpdate)
- end if
- end
-
- on WIN_ClosePanoMovie
- global gPanoMovieObj
- if objectp(gPanoMovieObj) then
- gPanoMovieObj(mdispose)
- end if
- end
-
- on WIN_PanoFrameScript pSpriteNum
- global gLastTimeRollover, gPanoMovieObj, gLastPanoMovieData, gPathName, gNavMovieObj, gPanoFrame
- if rollOver(pSpriteNum) then
- if objectp(gPanoMovieObj) then
- set tMouseOverResult to gPanoMovieObj(mMouseOver)
- if tMouseOverResult <> 0 then
- set tAction to item 1 of tMouseOverResult
- if tAction = "jump" then
- put item 2 of tMouseOverResult into field "Current Node ID"
- else
- if tAction = "stil" then
- put item 2 of tMouseOverResult into field "Current Hot Spot ID"
- else
- if tAction = "navg" then
- set tHotSpotID to item 2 of tMouseOverResult
- put tHotSpotID into field "Current Hot Spot ID"
- set tViewAngles to gPanoMovieObj(mGetNavgViewAngles)
- set tFileName to gPanoMovieObj(mGetHotSpotName)
- OpenNavMovie(gPathName & "\" & tFileName, 2, 0)
- if objectp(gNavMovieObj) then
- set gPanoFrame to marker(0)
- go("Object From Pano")
- SetNavMovieView(item 1 of tViewAngles, item 2 of tViewAngles)
- ShowNavMovie()
- end if
- else
- if tAction = "misc" then
- put item 2 of tMouseOverResult into field "Current Hot Spot ID"
- else
- if tAction = "undf" then
- hitHotspot(item 2 of tMouseOverResult)
- else
- if tAction = "pan " then
- end if
- end if
- end if
- end if
- end if
- end if
- set gLastTimeRollover to 1
- else
- cursor(200)
- cursor(-1)
- set gLastTimeRollover to 0
- end if
- end if
- else
- if gLastTimeRollover then
- cursor(200)
- cursor(-1)
- set gLastTimeRollover to 0
- if objectp(gPanoMovieObj) then
- gPanoMovieObj(mIdle)
- end if
- end if
- end if
- end
-
- on WIN_PanoGetHPanAngle
- return gPanoMovieObj(mGetHPanAngle)
- end
-
- on WIN_PanoGetVPanAngle
- return gPanoMovieObj(mGetVPanAngle)
- end
-
- on WIN_PanoGetZoomAngle
- return gPanoMovieObj(mGetZoomAngle)
- end
-
- on WIN_ExtractPathName pPathName
- set tDelimiter to "\"
- if pPathName contains tDelimiter then
- set tCharPos to length(pPathName)
- repeat while tCharPos >= 1
- if char tCharPos of pPathName = tDelimiter then
- return char 1 to tCharPos - 1 of pPathName
- end if
- set tCharPos to tCharPos - 1
- end repeat
- return EMPTY
- else
- return EMPTY
- end if
- end
-